package com.swak.rpc.config;

import com.swak.rpc.Invoker;
import com.swak.rpc.config.model.ServiceMetadata;

import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

/**
 * ReferenceConfig.
 * 
 * @author lifeng
 */
@Getter
@Setter
@Accessors(chain = true)
public class ReferenceConfig<T> extends AbstractReferenceConfig {

	private static final long serialVersionUID = 1L;

    protected String interfaceName;
    protected Class<?> interfaceClass;
    protected String client;
    protected String url;
    protected ConsumerConfig consumer;
    protected String protocol;
    protected ServiceMetadata serviceMetadata;
    
    private transient volatile T ref;
    private transient volatile Invoker<?> invoker;
    private transient volatile boolean initialized;
    private transient volatile boolean destroyed;
    private String services;

}